home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 2 / Gekikoh Dennoh Club Vol. 2 (Japan).7z / Gekikoh Dennoh Club Vol. 2 (Japan) (Track 01).bin / fsw / mcdrv / mccall.doc < prev    next >
Text File  |  1996-05-01  |  16KB  |  775 lines

  1.  
  2.     ───────────────────────────────
  3.  
  4.                   MCDRV
  5.  
  6.                Music Creative driver for X680x0
  7.  
  8.               【 サービスコールの解説 】
  9.  
  10.     ───────────────────────────────
  11.  
  12.                     written by CUL. (1996-04-10)
  13.  
  14.  
  15. ───────────────────────────────────────
  16.                 始めに
  17. ───────────────────────────────────────
  18.  
  19.   MCDRV では基本的に TRAP4 を使って多種のサービスをします。呼び出し方は、
  20.  
  21.     moveq.l    #サービス番号,d0
  22.     trap    #4
  23.  
  24. の様にします。d0 レジスタの値は、サービス終了後には破壊されるものとしてプロ
  25. グラムして下さい。
  26.  
  27.   また、エラーコードを返すようなコールの場合、戻り値が負ならエラーになります。
  28.  
  29.  
  30. ───────────────────────────────────────
  31.             MCDRV サービスコール
  32. ───────────────────────────────────────
  33.  
  34. ----------------------------------------
  35. $00    MCDRV 常駐解除
  36. ----------------------------------------
  37.  
  38. _RELEASE    MCDRV を常駐解除します
  39.  
  40. 引数:    なし
  41.  
  42. 戻値:    d0.l    エラーコード
  43.  
  44.  
  45. ----------------------------------------
  46. $01    MDC データ転送
  47. ----------------------------------------
  48.  
  49. _TRANSMDC    MDC データをドライバに転送します
  50.  
  51. 引数:        a0    データの格納されているアドレス
  52.         d1.l    データのサイズ
  53.  
  54.     (特殊処理)
  55.  
  56.     d1=0    データを転送しません。データポインタがそのデータ先頭を指すだけ
  57.         です。
  58.  
  59.         (次の演奏指示時にそのデータを演奏します)
  60.  
  61.         データは固定しておいて下さい。処理内容がわからなければ使わない
  62.         で下さい。
  63.  
  64.     d1=1~4    予約
  65.  
  66.     a0=0    d1.l で示されるサイズ分だけバッファを確保します。
  67.  
  68.         ディスクからデータを直接読み込む場合等に使用します。
  69.         演奏前には、必ずデータをロードしておいて下さい。
  70.  
  71.     d1=a0=0    ドライバのワークを初期化します
  72.  
  73. 戻値:    d0.l    データ先頭へのポインタ
  74.         負:エラーコード
  75.  
  76.  
  77. ----------------------------------------
  78. $02    演奏開始
  79. ----------------------------------------
  80.  
  81. _PLAYMUSIC    セッティングと演奏開始
  82.  
  83. 引数:    なし
  84.  
  85. 戻値:    d0.l    エラーコード
  86.  
  87.         演奏開始は必ず $05 _STOPMUSIC をコールしてから本コールを行なっ
  88.         てください。
  89.  
  90.  
  91. ----------------------------------------
  92. $03    ADPCM データ転送
  93. ----------------------------------------
  94.  
  95. _TRANSPCM    ADPCM データセット
  96.  
  97. 引数:        a0    データの格納されているアドレス
  98.         d1.l    データのサイズ
  99.  
  100.     (特殊処理)
  101.         _TRANSMDC の特殊処理とほぼ同じです。
  102.  
  103. 戻値:    d0.l    データ先頭へのポインタ
  104.         負:エラーコード
  105.  
  106.  
  107. ----------------------------------------
  108. $04    演奏一時停止
  109. ----------------------------------------
  110.  
  111. _PAUSEMUSIC    演奏を一時停止状態にする
  112.  
  113. 引数:    なし
  114.  
  115. 戻値:    なし
  116.  
  117.  
  118. ----------------------------------------
  119. $05    演奏停止
  120. ----------------------------------------
  121.  
  122. _STOPMUSIC    演奏を停止する
  123.  
  124. 引数:    なし
  125.  
  126. 戻値:    なし
  127.  
  128.  
  129. ----------------------------------------
  130. $06    ワークアドレスの取得
  131. ----------------------------------------
  132.  
  133. _GETWORKADR
  134.  
  135. 引数:    なし
  136.  
  137. 戻値:    d0.l    MCDRV ワークエリアへのアドレス
  138.  
  139.  
  140. ----------------------------------------
  141. $07    トラックステータスの取得
  142. ----------------------------------------
  143.  
  144. _GETTRACKSTAT        使用禁止
  145.  
  146. 引数:    d1    知りたいトラック番号
  147.     a0    格納するバッファのアドレス
  148.  
  149. 戻値:    d0.l    エラーコード
  150.     0(a0)    未定
  151.         :
  152.  
  153.  
  154. ----------------------------------------
  155. $08    ベクタテーブルの先頭アドレス取得
  156. ----------------------------------------
  157.  
  158. _GETVCTTBLADR
  159.  
  160. 引数:    無し
  161.  
  162. 戻値:    d0.l    ベクタテーブルの先頭アドレス
  163.  
  164.  
  165. ----------------------------------------
  166. $09    キーオン情報
  167. ----------------------------------------
  168.  
  169. _GETKEYONPTR
  170.  
  171. 引数:    無し
  172.  
  173. 戻値:    d0.l    キーオン情報へのアドレス
  174.  
  175.     ofst    内容
  176.     $00    FIFO の管理ポインタ
  177.     $02    FIFO バッファ先頭 (FIFO buffer = 1024byte)
  178.  
  179.  
  180. ----------------------------------------
  181. $0a    カレントデータ格納アドレス取得
  182. ----------------------------------------
  183.  
  184. _GETCURDATAPTR
  185.  
  186. 引数:    無し
  187.  
  188. 戻値:    d0    カレントデータの格納アドレス
  189.         0:データが入っていない
  190.  
  191.   ファイル構造そのものが入っていますので、タイトルやファイルサイズなどさまざま
  192. な情報を取得することができます。
  193.  
  194.   (ファイル構造などは MCFORM.DOC 参照)
  195.  
  196.  
  197. ----------------------------------------
  198. $0b    演奏トラックのフラグ取得
  199. ----------------------------------------
  200.  
  201. _GETPLAYFLG
  202.  
  203. 引数:    無し
  204.  
  205. 戻値:    d0.l    TRACK 0 ~ TRACK31 ビットマップ (1=play)
  206.     d1.l    TRACK31 ~ TRACK63    〃
  207.  
  208.  
  209. ----------------------------------------
  210. $0c    トランスポーズ値設定
  211. ----------------------------------------
  212.  
  213. _SETTRANSPOSE
  214.  
  215. 引数:    d1.w    b0~7    値 (-127~127)
  216.         b8~15    $00    値を設定値から加減算し使用します
  217.             $ff    値をそのまま使用します
  218.  
  219. 戻値:    d0.b    トランスポーズ値
  220.  
  221.  
  222. ----------------------------------------
  223. $0d    ループ回数の取得
  224. ----------------------------------------
  225.  
  226. _GETLOOPCOUNT
  227.  
  228. 引数:    無し
  229.  
  230. 戻値:    d0.w    演奏開始からのループ回数
  231.         $ffff:演奏は終了した
  232.  
  233.  
  234. ----------------------------------------
  235. $0e    演奏開始からの経過クロック取得
  236. ----------------------------------------
  237.  
  238. _GETNOWCLOCK
  239.  
  240. 引数:    無し
  241.  
  242. 戻値:    d0.l    演奏開始からの経過クロック取得
  243.     d1.l    総クロック数
  244.         -1:総クロック情報がない
  245.  
  246.  
  247. ----------------------------------------
  248. $0f    演奏指定中データのタイトル取得
  249. ----------------------------------------
  250.  
  251. _GETTITLE
  252.  
  253. 引数:    無し
  254.  
  255. 戻値:    d0.l    タイトルデータへのアドレス
  256.  
  257.  
  258. ----------------------------------------
  259. $10    現在演奏中の曲中のコメント取得
  260. ----------------------------------------
  261.  
  262. _GETCOMMENT
  263.  
  264. 引数:    無し
  265.  
  266. 戻値:    d0.l    コメントデータへのアドレス
  267.  
  268.  
  269. ----------------------------------------
  270. $11    割り込み中サブルーチン実行
  271. ----------------------------------------
  272.  
  273. _INTEXEC
  274.  
  275. 引数:    a0    jsr するアドレス
  276.  
  277. 戻値:    d0.l    エラーコード
  278.  
  279.   MCDRV の割り込み処理中に、他の割り込みから _PLAYMUSIC 等の演奏状態を変更する
  280. コールが実行されると、MCDRV の処理に戻った時に暴走する場合があります。
  281.  
  282.   本コールはこのような危険性のある処理を安全なタイミングで実行するために設けら
  283. れています。
  284.  
  285.   実行されるのは1回のみで、MCDRV の割り込み処理が終わる直前に実行されます。
  286.  
  287.   a6(ワークエリア) 以外のレジスタ内容は不定です。
  288.  
  289.   d0-d7/a0-a6 の内容は破壊しても構いません。
  290.  
  291.  
  292. ----------------------------------------
  293. $12    サブイベントセット
  294. ----------------------------------------
  295.  
  296. _SETSUBEVENT
  297.  
  298. 引数:    d1.w    MODE
  299.  
  300.         0: 登録IDを参照し登録済みなら登録されたアドレスを d0.l に
  301.            未登録ならエラーコードを d0.l に返します。
  302.  
  303.         1: 登録IDを参照し登録済みならエラーコードを返し、
  304.            未登録なら a0 の指し示すアドレスと ID を登録します。
  305.  
  306.         2: 登録IDを参照し未登録ならエラーコードを返し、
  307.            登録済みなら登録されたアドレスを d0.l に返し、登録を解除します。
  308.  
  309.     d2.l    登録ID    (例) 'MCAP' など
  310.     a0    jsr するアドレス (MODE=1 のみ)
  311.  
  312. 戻値:    d0.l    負:エラーコード
  313.  
  314.   特定のイベントが発生すると、MCDRV は d0.l にイベント番号を入れてサブルーチン
  315. コールします。
  316.  
  317. d0.l    0    NULL (他のプログラムがイベントを専有した等)
  318.     1    ループカウントが発生した (d1.w:ループ回数)
  319.     2    演奏が終了した
  320.     3    演奏が開始された
  321.     4    演奏が一時停止された
  322.     5    フェードアウトが完了した
  323.     6    フェードインが完了した
  324.     7    演奏時間で1秒が経過した (d1.l:_GETPASSTIMEの戻り値と同様)
  325.     負    MCDRV が解除される
  326.  
  327.   レジスタの値は保存して次のプログラムに渡すようにします。
  328.  
  329.   イベントは8個まで登録できます。
  330.  
  331.  
  332. ----------------------------------------
  333. $13    ドライバ解除制御
  334. ----------------------------------------
  335.  
  336. _UNREMOVE
  337.  
  338. 引数:    d1.w    0    何もしません
  339.         1    解除禁止 (UNREMOVE フラグを +1 します)
  340.         -1    解除許可 (UNREMOVE フラグを -1 します)
  341.  
  342. 戻値:    d0.w    UNREMOVE 呼び出し回数 (v0.66~)
  343.  
  344.   UNREMOVE フラグが0の時のみ常駐解除ができます。
  345.  
  346. (例) プログラムの流れ →
  347.     禁止(+1) 禁止(+1) 許可(-1) = +1 ・・・ 解除できない
  348.  
  349.   禁止/許可はそれぞれ1回ずつコールするようにして下さい。
  350.  
  351.  
  352. ----------------------------------------
  353. $14    フェードアウト開始
  354. ----------------------------------------
  355.  
  356. _FADEOUT
  357.  
  358. 引数:    d1.w    フェードアウトスピード (-255~255)
  359.         正:フェードアウト
  360.         負:フェードイン
  361.         0:フェーダー停止
  362.  
  363. 戻値:    なし
  364.  
  365.  
  366. ----------------------------------------
  367. $15    パラメータ変更要求
  368. ----------------------------------------
  369.  
  370. _SETPARAM
  371.  
  372. 引数:    d3.w    トラック番号 (0~127)
  373.     d2.w    パラメータ種類 (15,14)
  374.     d1.l    値 (bit31=1の時相対値による設定)
  375.  
  376. パラメータ種類
  377.     0~13    未登録
  378.     14    パンポット
  379.     15    プログラム
  380.  
  381.  
  382. ----------------------------------------
  383. $16    テンポ値取得
  384. ----------------------------------------
  385.  
  386. _GETTEMPO
  387.  
  388. 引数:    なし
  389.  
  390. 戻値:    d0.l    hw    4分音符あたりの分解能
  391.         lw    音楽的テンポ値
  392.  
  393.  
  394. ----------------------------------------
  395. $17    演奏開始からの経過時間取得
  396. ----------------------------------------
  397.  
  398. _GETPASSTIME
  399.  
  400. 引数:    なし
  401.  
  402. 戻値:    d0.l    hw    分 (0~65535)
  403.         lw    秒 (0~59)
  404.  
  405.  
  406. ----------------------------------------
  407. $18    スキップ演奏
  408. ----------------------------------------
  409.  
  410. _SKIPPLAY
  411.  
  412. 引数:    d1.l    スキップするクロック
  413.  
  414. 戻値:    なし
  415.  
  416.  
  417. ----------------------------------------
  418. $1c    ADPCM名登録
  419. ----------------------------------------
  420.  
  421. _SETADPCMNAME
  422.  
  423. 引数:    a0    ファイル名へのポインタ
  424.  
  425. 戻値:    なし
  426.  
  427.  
  428. ----------------------------------------
  429. $1d    ADPCM名取得
  430. ----------------------------------------
  431.  
  432. _GETADPCMNAME
  433.  
  434. 引数:    なし
  435.  
  436. 戻値:    d0.l    ファイル名へのポインタ
  437.  
  438.  
  439. ----------------------------------------
  440. $1e    ADPCM名比較
  441. ----------------------------------------
  442.  
  443. _CMPADPCMNAME
  444.  
  445. 引数:    a0    ファイル名へのポインタ
  446.  
  447. 戻値:    d0.l    正:ドライバ内に同じファイル名のデータが存在する
  448.         負:        〃               しない
  449.  
  450.  
  451. ----------------------------------------
  452. $1f    トラックワークサイズの取得
  453. ----------------------------------------
  454.  
  455. _GETTRWORKSIZE
  456.  
  457. 引数:    なし
  458.  
  459. 戻値:    d0.w    1つのトラックワークのサイズ
  460.  
  461.  
  462. ----------------------------------------
  463. $20    効果音演奏
  464. ----------------------------------------
  465.  
  466. _PLAYSE
  467.  
  468. 引数:    a0    MDCデータ先頭のアドレス
  469.  
  470. 戻値:    なし
  471.  
  472.     トラック <-> チャンネルのアサイン等は、ドライバが自動的に
  473.     処理しますので、ユーザーが管理する必要はありません。
  474.  
  475.  
  476. ----------------------------------------
  477. $21    効果音停止
  478. ----------------------------------------
  479.  
  480. _STOPSE
  481.  
  482. 引数:    なし
  483.  
  484. 戻値:    なし
  485.  
  486.     現在演奏中の効果音を全て停止します。
  487.  
  488.  
  489. ----------------------------------------
  490. $22    テンポ感度設定
  491. ----------------------------------------
  492.  
  493. _SETTEMPOSNS
  494.  
  495. 引数:    d1.w    テンポ感度
  496.         0    なにもしない (TEMPOSNS 値の呼び出し用)
  497.         256    感度 = 100% (通常テンポ)
  498.         他    テンポ=テンポ×テンポ感度÷256 に設定
  499.  
  500. 戻値:    d0.w    現在の TEMPOSNS 値
  501.  
  502.   なるべく 1 (1/256倍速) ~ 4096 (16倍速) の範囲で使用して下さい。
  503.  
  504.  
  505. ----------------------------------------
  506. $23    マスターボリューム設定
  507. ----------------------------------------
  508.  
  509. _SETMASTERVOL
  510.  
  511. 引数:    d1.w    マスターボリューム値 (0~128)
  512.         0    消音
  513.         128    最大 (標準)
  514.         -1    なにもしない (MASTERVOL 値の呼び出し用)
  515.  
  516. 戻値:    d0.w    現在の MASTERVOL 値
  517.  
  518.   OPM/ADPCM パートでは 80 辺りで音が聞こえなくなります。
  519.  
  520.  
  521. ----------------------------------------
  522. $24    フェードレベル設定
  523. ----------------------------------------
  524.  
  525. _SETFADELVL
  526.  
  527. 引数:    d1.w    フェードレベル (0~128)
  528.         0    消音
  529.         128    最大 (標準)
  530.         -1    なにもしない (FADELVL 値の呼び出し用)
  531.  
  532. 戻値:    d0.w    現在の FADELVL 値
  533.  
  534.   OPM/ADPCM/MIDI の音量の関係が保たれます。
  535.  
  536.   FADELVL は _PLAYMUSIC で 128 に初期化されます。
  537.  
  538.  
  539. ----------------------------------------
  540. $25    MIDIインターフェース設定
  541. ----------------------------------------
  542.  
  543. _SETMIDIIF
  544.  
  545. 引数:    d1.l    チャンネル $8n~$Fn に割り当てるデバイス番号
  546.  
  547.         bit    チャンネル    MIDI チャンネル
  548.         00~03    $80~$8f      1~16
  549.         04~07    $90~$9f     17~32
  550.             :
  551.         28~31    $f0~$ff    113~128
  552.  
  553.         デバイス番号
  554.         0    何も割り当てない
  555.         1    MIDI BOARD #1
  556.         2    MIDI BOARD #2
  557.         3    RS-MIDI
  558.         4    POLYPHON-MIDI
  559.         5~    予約
  560.  
  561. 戻値:    d0.l    現在の割り当て
  562.  
  563.   動作中にデバイスの再割り当てを行ないます。ゲーム等のコンフィグで、MIDI BOARD
  564. と RS-MIDI を選択する時などに使用します。
  565.  
  566.   常駐時の -I オプションで指定されなかったデバイスについては、本コールを呼び出
  567. しても無視されます。
  568.  
  569.   選択中に曲が演奏されるのなら、以下の様にして切り換えます。
  570.  
  571.     _STOPMUSIC (MIDI の効果音を使っているなら _STOPSE も呼ぶ)
  572.         ↓
  573.     _SETMIDIIF
  574.         ↓
  575.     _PLAYMUSIC
  576.  
  577.  
  578. ----------------------------------------
  579. $26    MIDIデータ送信
  580. ----------------------------------------
  581.  
  582. _TRANSMIDIDATA
  583.  
  584. 引数:    d1.l    hw    送信するチャンネル番号
  585.               $80~$ff -> MIDI チャンネル 1~128
  586.         lw    送信するバイト数
  587.  
  588.     a0    送信する MIDI データを指すポインタ
  589.  
  590. 戻値:    なし
  591.  
  592.  
  593. ----------------------------------------
  594. $27    バッファ領域リンク
  595. ----------------------------------------
  596.  
  597. _MCMLINK
  598.  
  599. 引数:    d1.l    追加するバッファのサイズ
  600.     a0    追加するバッファのアドレス
  601.  
  602. 戻値:    d0.l    エラーコード
  603.  
  604.   指定されたバッファにメモリ管理テーブルを作成し、MCDRV のバッファ
  605. にリンクさせます。
  606.  
  607.   16 byte を管理テーブル用に使用しますので、実際に追加されるサイ
  608. ズは引数から 16 を引いた値になります。
  609.  
  610.  
  611. ----------------------------------------
  612. $28    バッファ領域リンク解除
  613. ----------------------------------------
  614.  
  615. _MCMUNLK
  616.  
  617. 引数:    a0    解除するバッファのアドレス
  618.  
  619. 戻値:    d0.l    エラーコード
  620.  
  621.   指定されたアドレスで示されるバッファを MCDRV のバッファから
  622. 解除します。
  623.  
  624.  
  625. ----------------------------------------
  626. $29    バッファ初期化
  627. ----------------------------------------
  628.  
  629. _PURGE
  630.  
  631. 引数:    なし
  632.  
  633. 戻値:    なし
  634.  
  635.   演奏を終了し、ドライバが使用しているバッファを全て開放します。
  636.  
  637.  
  638. ----------------------------------------
  639. $2a    メジャーサーチ
  640. ----------------------------------------
  641.  
  642. _SRCHMEAS
  643.  
  644. 引数:    d1.w    サーチする小節番号
  645.  
  646. 戻値:    なし
  647.  
  648.  
  649. ----------------------------------------
  650. $2b    ジャンプ演奏
  651. ----------------------------------------
  652.  
  653. _JUMPPLAY
  654.  
  655. 引数:    d1.l    演奏開始からの位置 (クロック)
  656.  
  657. 戻値:    なし
  658.  
  659.  
  660. ----------------------------------------
  661. $2c    レベル付き効果音演奏
  662. ----------------------------------------
  663.  
  664. _PLAYSE2
  665.  
  666. 引数:    a0    MDCデータ先頭のアドレス
  667.     d1.b    効果音レベル 0~127
  668.  
  669. 戻値:    なし
  670.  
  671.   _PLAYSE による効果音演奏はレベル0(最低レベル)です。
  672.  
  673.  
  674. ----------------------------------------
  675. $2d    レベル付き効果音停止
  676. ----------------------------------------
  677.  
  678. _STOPSE2        v0.66~
  679.  
  680. 引数:    d1.w    効果音レベル (0~127) から
  681.     d2.w    効果音レベル (0~127) まで
  682.  
  683. 戻値:    なし
  684.  
  685.  
  686. ----------------------------------------
  687. $2e    レベル付き ADPCM 再生 (ADPCM データアドレス指定)
  688. ----------------------------------------
  689.  
  690. _PLAYADPCM        v0.66~
  691.  
  692. 引数:    d1    b0~7    パンポット
  693.         b8~15    周波数
  694.         b16~23    レベル
  695.     d2.l    ADPCM のデータサイズ
  696.     a0    ADPCM の格納アドレス (IOCS とはレジスタが違うので注意)
  697.  
  698. 戻値:    なし
  699.  
  700.   レベルは符合付きバイトで以下の様になっています。
  701.  
  702.     +127    最優先
  703.       :
  704.        0    演奏データと同じ
  705.       :
  706.     -128    最下位
  707.  
  708.  
  709. ----------------------------------------
  710. $2f    レベル付き ADPCM 再生 (ドライバ内番号指定)
  711. ----------------------------------------
  712.  
  713. _PLAYADPCM2        v0.66~
  714.  
  715. 引数:    d1    b0~7    パンポット
  716.         b8~15    周波数
  717.         b16~23    レベル
  718.     d2.w    ノート番号
  719.  
  720. 戻値:    なし
  721.  
  722.   曲データ用としてドライバに登録されている ADPCM を再生します。
  723.  
  724.   番号はデータ内の管理番号なので、MIDI ノート番号に変換する必要はありません。
  725.  
  726.   レベルは _PLAYADPCM と同じです。
  727.  
  728.  
  729. ----------------------------------------
  730. $30    効果音フェードアウト
  731. ----------------------------------------
  732.  
  733. _FADEOUTSE        v0.67~
  734.  
  735. 引数:    d1.w    フェードアウトスピード (0~255)
  736.     d2.b    対象レベル
  737.  
  738. 戻値:    なし
  739.  
  740.     0で最速。
  741.  
  742.  
  743. ───────────────────────────────────────
  744.             MCDRV 常駐チェック方法
  745. ───────────────────────────────────────
  746.  
  747.   このサブルーチンを呼ぶと、MCDRV が常駐していれば d0.l にバージョンナンバーが、
  748. 常駐していなければ -1 が帰って来ます。
  749.  
  750. KEEPCHECK:
  751.         move.l    a0,-(sp)
  752.         moveq.l    #-1,d0
  753.         movea.l    $90.w,a0        * TRAP #4 のベクタを取得
  754.         cmpa.l    #$ffffff,a0
  755.         bhi    keepcheck90
  756.         cmpi.l    #'-MCD',-12(a0)        * 常駐ヘッダチェック
  757.         bne    keepcheck90
  758.         cmpi.l    #'RV0-',-8(a0)
  759.         bne    keepcheck90
  760.         move.l    -(a0),d0        * バージョンを返す
  761. keepcheck90:
  762.         tst.l    d0            * ccr にも結果を反映させる
  763.         movea.l    (sp)+,a0
  764.         rts
  765.  
  766.  
  767.   以下のようにするとスムースな処理になります。
  768.  
  769.     bsr    KEEPCHECK
  770.     bmi    notkeep            * 「常駐していない」
  771.     cmpi.l    #バージョン*$10000,d0    * バージョンチェック
  772.     bcs    oldversion        * 「バージョンが古い」
  773.         :            * ドライバは異常なし
  774.  
  775.